package com.teradata.olingo.metadata.core.edm.mapper.api;

import com.teradata.olingo.metadata.core.edm.mapper.exception.ODataGenericModelException;
import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
import org.apache.olingo.commons.api.edm.provider.CsdlAbstractEdmItem;


public interface GenericAttribute extends GenericElement {


  public GenericStructuredType getStructuredType() throws ODataGenericModelException;

  public Class<?> getType();

  public boolean isComplex();

  public boolean isKey();

  public boolean isAssociation();

  public boolean isSearchable();

  public EdmPrimitiveTypeKind getEdmType() throws ODataGenericModelException;

  public CsdlAbstractEdmItem getProperty() throws ODataGenericModelException;

  public boolean isEnum();
}
